package linkedlist01;

import java.sql.SQLOutput;
import java.util.LinkedList;

/*
LinkedList中特有的方法：
    void addFirst(E e)
          不断向集合的起始位置(开头位置)添加元素
    void addLast(E e)
          不断向集合的末尾位置(结尾位置)添加元素

    E getFirst()
          获取起始位置的元素
    E getLast()
          获取末尾位置的元素

    E removeFirst()
          移除并返回起始位置元素
    E removeLast()
          移除并返回末尾位置元素

 */
public class LinkedListDemo01 {
    public static void main(String[] args) {
        //method01();
        //method02();
        //method03();
        //method04();
        LinkedList<String> ll = new LinkedList<>();
        ll.addLast("abc");
        ll.addLast("def");
        ll.addLast("ghk");
        String last = ll.removeLast();//ghk
        System.out.println(last);
        System.out.println(ll);//[abc, def]
    }

    private static void method04() {
        LinkedList<String> ll = new LinkedList<>();
        ll.addLast("abc");
        ll.addLast("def");
        ll.addLast("ghk");
        String first = ll.removeFirst();//abc
        System.out.println(first);
        System.out.println(ll);//[def, ghk]
    }

    private static void method03() {
        LinkedList<String> ll = new LinkedList<>();
        ll.addLast("abc");
        ll.addLast("def");
        ll.addLast("ghk");
        String first = ll.getFirst();//获取起始位置的元素
        System.out.println(first);//abc

        String last = ll.getLast();//获取末尾的位置元素
        System.out.println(last);//ghk
    }

    private static void method02() {
        LinkedList<String> ll = new LinkedList<>();
        ll.addLast("abc");
        ll.addLast("def");
        ll.addLast("ghk");
        System.out.println(ll);//[abc, def, ghk]
    }

    private static void method01() {
        LinkedList<String> ll = new LinkedList<>();
        ll.addFirst("abc");
        ll.addFirst("def");
        ll.addFirst("ghk");
        System.out.println(ll);//[ghk, def, abc]
    }
}
